package guo;

import guo.pojo.Customer;
import guo.pojo.User;
import guo.reflection.Container;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
 * 视频详情   https://www.bilibili.com/video/BV1K4421w7zP/?spm_id_from=333.999.0.0&vd_source=4fcf0c9c4d2954afb0ada2933e9f4e55
 *
 *
 * 模拟框架
 * 创建通用方法，使得可以通过配置实现服务的依赖注入
 * 创建config类   定义方法返回实例对象
 * 创建container容器，
 */

public class TestReflection {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
        Container container = new Container();
        container.init();
        Class<?> clazz = Class.forName("guo.pojo.User");
        Object obj = container.createInstance(clazz);  //构造器注入 根据参数类型得到服务对象 并注入到实例对象中，并返回  实现依赖自动注入
        obj = (User) obj;
    }
}